Compilers are computer programs that compile computer code to generate executable versions of the computer code. The computer code may be written by a developer in a human-understandable computer language, for instance, which a compiler then compiles to generate a version of the computer code that is executable by a processor of a computing device. By comparison, the human-understandable version of the computer code, which is typically called source code, is usually not directly executable by a computing device, such as by a processor of the computing device.
Some types of compilers employ a technique known as trace-based compilation. A trace-based compiler compiles computer code into an executable version thereof based on compilation units corresponding to execution traces through the computer code. An execution trace is a particular sequence of execution through the computer code. The execution traces that are used as compilation units by trace-based compilers are typically those that are frequently executed, so that the compilers can optimize these execution traces to provide for better execution performance.